module.exports = {
  apps: [
    {
      /**
       * 项目主配置
       */
      // 项目的名字，可任意
      name: 'Test-001',
      // 项目启动的命令，可以为 js 文件，如：dist/index.js
      //              或为实际 bash 命令，如此处：pnpm dev 等
      script: 'bin/www',
      // 项目运行的根目录
      cwd: './',
      // 是否在项目文件发生改动时重启项目：
      //   一般情况我们或多或少都会读写项目里的文件，如生成 cache 等，故不允许重启
      watch: false,

      /**
       * Control flow 配置
       */
      // 项目最小健康时间：我们这里认为该项目启动的 24h 内一定都是正常运行的，否则将产生 error 报错
      min_uptime: '24h',
      // 项目最大内存：当内存占用超过这个 limit 时将自动重启
      max_memory_restart: '500M',
      // 自动重启次数
      max_restarts: 10,
      // 每次尝试重启的间隔时间（毫秒）
      restart_delay: 3000,

      /**
       * Log file 配置
       */
      // 输出日志时的时间日期 prefix，每行日志前都会带上
      log_date_format: 'YYYY-MM-DD HH:mm Z',
      // 程序运行控制台的正常输出保存位置
      out_file: './logs/out.log',
      // 程序运行错误日志保存位置
      error_file: './logs/error.log',
      // 是否将多个 pid 的进程日志合并，我们不希望日志还要分开看，所以合并在一个文件查看即可
      combine_logs: true,

      /**
       * cluster 配置
       */
      exec_mode: 'cluster',
      instances: 'max',
      instance_var: 'INSTANCE_ID',

      /**
       * 运行环境配置
       */
      env_development: {
        PORT: 7001,
        NODE_ENV: 'development'
      },
      env_production: {
        PORT: 7000,
        NODE_ENV: 'production'
      }
    }
  ],

  deploy : {
    production : {
      key: '~/.ssh/id_rsa',
      user : 'root',
      host: [
        {
          host: '14.18.63.80',
          port: '22'
        }
      ],
      ref  : 'origin/master',
      repo : 'git@gitee.com:wx_1098/test-001.git',
      path : '/www/wwwroot/test-001',
      ssh_options: 'StrictHostKeyChecking=no',
      "post-setup": "ls -la",
      "pre-setup" : "",
      'pre-deploy-local': "echo '生产环境部署中'",
      'post-deploy' : 'npm i && pm2 reload Test-001',
      "env"  : {
        "NODE_ENV": "production"
      }
    }
  }
};
